package common

// 读取map中的全部value,返回切片
func MapValues[T Compare, V any](m map[T]V) []V {
	values := make([]V, 0, len(m))
	for _, value := range m {
		values = append(values, value)
	}
	return values
}

// 读取map中的全部key,返回切片
func MapKeys[T Compare, V any](m map[T]V) []T {
	keys := make([]T, 0, len(m))
	for key := range m {
		keys = append(keys, key)
	}
	return keys
}

// 合并两个map
func MergeMap[T Compare, V any](m1 map[T]V, m2 map[T]V) map[T]V {
	m := make(map[T]V)
	for k, v := range m1 {
		m[k] = v
	}
	for k, v := range m2 {
		m[k] = v
	}
	return m
}
